require 'digest/sha1'

nazwaPlikInsert = "insert.sql"
nazwaPlikDelete = "delete.sql"
liczbaNauczycieli = 20
liczbaKlas = 10
liczbaUczniow = 20
liczbaNieobecnosci = 20
liczbaWiadomosci = 10
liczbaOcenKoncowych = 50
liczbaOcen = 50
liczbaSekretarek = 3

class Nauczyciel
  attr :imie, true
  attr :nazwisko, true
  attr :adres, true
  attr :telefon, true
  attr :nauczane_przedmioty, true
end

class Klasa
  attr :rocznik, true
  attr :litera, true
  attr :sala, true
  attr :informacje_dodatkowe, true
  attr :sklad, true
end

class Uczen
  attr :nr_legitymacji, true
  attr :imie, true
  attr :nazwisko, true
  attr :adres, true
  attr :data_urodzenia, true
  attr :miejsce_urodzenia, true
  attr :klasa, true
  attr :opiekunowie, true
end

class Opiekun
  attr :imie, true
  attr :nazwisko, true
  attr :adres, true
  attr :telefon, true
  attr :zaklad_pracy, true
end

class User
  attr :login, true
  attr :haslo, true
  attr :email, true
  attr :uprawnienia, true
  attr :uzytkownik, true
end

class Generator
  
  @plikInsert
  @plikDelete
  @imiona
  @nazwiska
  @klasy
  @wKlasie
  @ulice
  @miasta
  @przedmioty
  @kategorie
  @eMail
  @zakladyPracy 
  @informacjeDodatkoweOKlasie
  @roczniki
  @dniTygodnia
  @nauczyciele
  @klasy
  @uczniowie
  @opiekunowie
  @uzytkownicy
  
  def initialize(plikInsert, plikDelete)
    @plikInsert = plikInsert
    @plikDelete = plikDelete
    @imiona = ['Adam', 'Andrzej', 'Artur', 'Bartłomiej', 'Bartosz', 'Cezary', 'Daniel', 'Dawid', 'Erwin', 'Grzegorz', 'Henryk', 'Ireneusz', 'Jerzy', 'Kamil', 'Kacper', 'Michał', 'Marcin', 'Marian', 'Oskar', 'Piotr', 'Paweł', 'Patryk', 'Robert', 'Rafał', 'Stefan', 'Sławomir', 'Tadeusz', 'Wojciech', 'Zdzisław', 'Anna', 'Agata', 'Barbara', 'Beata', 'Celina', 'Daria', 'Dominika', 'Eliza', 'Gabriela', 'Halina', 'Ida', 'Jagoda', 'Katarzyna', 'Krystyna', 'Lara', 'Maria', 'Natalia', 'Ola', 'Patrycja', 'Sara', 'Tamara', 'Zdzisława']
    @nazwiska = ['Nowak', 'Kowalski', 'Głowacki', 'Brzozkowski', 'Mickiewicz', 'Słowacki', 'Fredro', 'Wajda', 'Santor', 'Figura', 'Stuhr', 'Schmidt', 'Szczerbaniuk', 'Murek', 'Winiarski', 'Bełcik', 'Sadurek', 'Gunia', 'Bartman', 'Świeniewicz', 'Wspaniały', 'Nowakowski', 'Bąkiewicz', 'Wnuk', 'Pliński', 'Rybak', 'Możdżonek', 'Drzyzga']
    @klasy = 3
    @wKlasie = 15
    @ulice = ['Prosta', 'Krzywa', 'Długa', 'Krótka', 'Reymonta', 'Budryka', 'Nawojki', 'Czarnowiejska', 'Mickiewicza', 'Słowackiego', 'Szewska', 'Polna', 'Czarna', 'Biała', 'Czerwona', 'Zielona', 'Klonowa', 'Brzozowa', 'Kasztanowa', 'Piastowska', 'Jagiellońska', 'Królewska', 'Armii Krajowej', 'Podwale', 'Dworcowa', 'Powstańców śląskich', 'Powstańców warszawskich']
    @miasta = ['Kraków', 'Katowice', 'Warszawa', 'Londyn', 'Ruda Śląska', 'Bytom', 'Chorzów', 'Zakopane']
    @przedmioty = ['Matematyka', 'Informatyka', 'Fizyka', 'Biologia', 'Chemia', 'WF', 'Język angielski', 'Język polski', 'Język niemiecki', 'Język hiszpański', 'Algebra', 'Analiza', 'WOS', 'Historia']
    @kategorie = ['Sprawdzian', 'Kartkówka', 'Zebranie', 'Wywiadówka', 'Konsultacje', 'Wycieczka', 'Zastępstwo']
    @eMail = ['agh.edu.pl', 'gmail.com', 'onet.pl', 'wp.pl', 'interia.pl', 'gazeta.pl', 'kki.net.pl', 'tpsa.pl', 'neostrada.pl']
    @zakladyPracy = ['Szkola podstawowa', 'Gimnazjum', 'Liceum Ogolnoksztalcace', 'Comarch', 'Sabre', 'IBM', 'Google', 'Microsoft', 'Sun', 'Oracle', 'Adobe', 'Intel', 'Motorola', 'TPSA', 'Orange', 'Plus', 'Era', 'MPK', 'PKP']
    @informacjeDodatkoweOKlasie = ['Klasa specjalna', 'Klasa sportowa', 'Klasa politechniczna', 'Klasa humanistyczna', 'Klasa lingwistyczna', 'Klasa ekonomiczna', 'Klasa biologiczno-chemiczna']
    @roczniki = ['1987', '1988', '1989', '1990', '1991', '1992']
    @dniTygodnia = ['poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota', 'niedziela']
    @nauczyciele = Array.new
    @klasy = Array.new    
    @uczniowie = Array.new
    @opiekunowie = Array.new
    @uzytkownicy = Array.new
  end

  def generujPrzedmioty
    deletes = ["DELETE FROM przedmioty;"]
    @przedmioty.each { |przedmiot|
      @plikInsert.puts "INSERT INTO Przedmioty (Nazwa, Opis) VALUES (\'"+przedmiot+"\', \'Przedmiot: "+przedmiot+"\');"
    }
    return deletes
  end
  
  #def generujKategorie
  #  deletes = ["DELETE FROM SlownikKategorii;"]
  #  @kategorie.each { |kategoria|
  #    @plikInsert.puts "INSERT INTO SlownikKategorii (Nazwa) VALUES (\'"+kategoria+"\');"
  #  }
  #  return deletes
  #end
  
  def generujNauczycieli(ile)
    deletes = []
    @nauczyciele=[]
    ile.times { |i|
      imie = @imiona[rand(@imiona.length)]
      nazwisko = @nazwiska[rand(@nazwiska.length)]
      adres = "ul. "
      adres += @ulice[rand(@ulice.length)]
      adres += " "
      adres += rand(9).to_s+rand(9).to_s+"-"+rand(9).to_s+rand(9).to_s+rand(9).to_s
      adres += " "
      adres += @miasta[rand(@miasta.length)]
      telefon = rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s
      stmt = "INSERT INTO Nauczyciele (imie, nazwisko, telefon_kontaktowy, adres) VALUES (\'"
      stmt += imie
      stmt += "\', \'"
      stmt += nazwisko
      stmt += "\', \'"
      stmt += telefon
      stmt += "\', \'"
      stmt += adres
      stmt += "\');"
      nauczyciel = Nauczyciel.new
      nauczyciel.imie = imie
      nauczyciel.nazwisko = nazwisko
      nauczyciel.adres = adres
      nauczyciel.telefon = telefon
      nauczyciel.nauczane_przedmioty = Array.new
      @nauczyciele << nauczyciel
      @plikInsert.puts stmt
      generujNauczanePrzedmioty(rand(3),nauczyciel)
    }
    deletes = ["DELETE FROM NauczanePrzedmioty;", "DELETE FROM Nauczyciele;"]
  end  
  
  def generujNauczanePrzedmioty(ile, nauczyciel)
    imie = nauczyciel.imie
    nazwisko = nauczyciel.nazwisko
    adres = nauczyciel.adres
    ile.times { |i|
     stmt = "INSERT INTO NauczanePrzedmioty (Nauczyciele_id, Przedmioty_id) VALUES ("
     stmt += "(SELECT id FROM Nauczyciele WHERE imie=\'"
     stmt += imie 
     stmt += "\' AND nazwisko=\'"
     stmt += nazwisko
     stmt += "\' AND adres=\'"
     stmt += adres
     stmt += "\'), "
     stmt += "(SELECT id FROM Przedmioty WHERE nazwa=\'"
     przedmiot = @przedmioty[rand(@przedmioty.length)]
     nauczyciel.nauczane_przedmioty << przedmiot
     stmt += przedmiot
     stmt += "\')"
     stmt += ");"
     @plikInsert.puts stmt
    }
  end
  
  def generujKlasy(ile)
    litera = 'a'
    ile.times { |i|
      klasa1 = Klasa.new
      klasa1.litera = litera
      litera = litera.succ
      klasa1.sklad = []
      klasa1.rocznik = @roczniki[rand(@roczniki.length)]
      klasa1.sala = rand(9).to_s+rand(9).to_s+rand(9).to_s
      klasa1.informacje_dodatkowe = @informacjeDodatkoweOKlasie[rand(@informacjeDodatkoweOKlasie.length)]
      @klasy << klasa1
      stmt = "INSERT INTO Klasy (rocznik, litera, informacje_dodatkowe, sala, wychowawca) VALUES ("
      stmt += "\'"+klasa1.rocznik+"-1-1\'"
      stmt += ", \'"
      stmt += klasa1.litera
      stmt += "\', \'"
      stmt += klasa1.informacje_dodatkowe
      stmt += "\', \'"
      stmt += klasa1.sala
      stmt += "\', "
      stmt += "(SELECT id FROM Nauczyciele WHERE imie=\'"
      stmt += @nauczyciele[i].imie
      stmt += "\' AND nazwisko=\'"
      stmt += @nauczyciele[i].nazwisko
      stmt += "\' AND adres=\'"
      stmt += @nauczyciele[i].adres
      stmt += "\')"
      stmt += ");"
      @plikInsert.puts stmt
    }
    deletes = ["DELETE FROM Klasy;"]
    return deletes
  end
  
  def generujUczniow(ile)
    ile.times { |i|
      uczen = Uczen.new
      uczen.imie = @imiona[rand(@imiona.length)]
      uczen.nazwisko = @nazwiska[rand(@nazwiska.length)]
      uczen.opiekunowie = []
      uczen.adres = "ul. "
      uczen.adres += @ulice[rand(@ulice.length)]
      uczen.adres += " "
      uczen.adres += rand(9).to_s+rand(9).to_s+"-"+rand(9).to_s+rand(9).to_s+rand(9).to_s
      uczen.adres += " "
      uczen.adres += @miasta[rand(@miasta.length)]
      uczen.data_urodzenia = @roczniki[rand(@roczniki.length)].to_s+"-"+(rand(11)+1).to_s+"-"+(rand(27)+1).to_s
      uczen.miejsce_urodzenia = @miasta[rand(@miasta.length)]
      uczen.klasa = rand(@klasy.length)
      @klasy[uczen.klasa].sklad << uczen
      @uczniowie << uczen
      #uczen.nr_legitymacji=rand(99999999)
      uczen.nr_legitymacji=i
      stmt = "INSERT INTO Uczniowie (nr_legitymacji, imie, nazwisko, adres, data_urodzenia, miejsce_urodzenia, klasy_id) VALUES ("
      stmt += uczen.nr_legitymacji.to_s
      stmt += ", \'"
      stmt += uczen.imie
      stmt += "\', \'"
      stmt += uczen.nazwisko
      stmt += "\', \'"
      stmt += uczen.adres
      stmt += "\', \'"
      stmt += uczen.data_urodzenia
      stmt += "\', \'"
      stmt += uczen.miejsce_urodzenia
      stmt += "\', "
      stmt += "(SELECT id FROM Klasy WHERE YEAR(rocznik)="
      stmt += @klasy[uczen.klasa].rocznik
      stmt += " AND litera=\'"
      stmt += @klasy[uczen.klasa].litera
      stmt += "\' AND sala=\'"
      stmt += @klasy[uczen.klasa].sala
      stmt += "\' AND informacje_dodatkowe=\'"
      stmt += @klasy[uczen.klasa].informacje_dodatkowe
      stmt += "\')"
      stmt += ");"
      @plikInsert.puts stmt
      generujOpiekunow(rand(2)+1,uczen)
    }
    return ["DELETE FROM UczniowieOpiekunowie;", "DELETE FROM Opiekunowie;", "DELETE FROM Uczniowie;"]
  end
  
  def generujOpiekunow(ile, uczen)
    ile.times { |i|
      opiekun = Opiekun.new
      opiekun.imie = @imiona[rand(@imiona.length)]
      opiekun.nazwisko = @nazwiska[rand(@nazwiska.length)]
      opiekun.adres = "ul. "
      opiekun.adres += @ulice[rand(@ulice.length)]
      opiekun.adres += " "
      opiekun.adres += rand(9).to_s+rand(9).to_s+"-"+rand(9).to_s+rand(9).to_s+rand(9).to_s
      opiekun.adres += " "
      opiekun.adres += @miasta[rand(@miasta.length)]
      opiekun.telefon = rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s
      opiekun.zaklad_pracy = @zakladyPracy[rand(@zakladyPracy.length)]
      @opiekunowie << opiekun
      uczen.opiekunowie << opiekun
      stmt1 = "INSERT INTO Opiekunowie (imie, nazwisko, adres, telefon, zaklad_pracy) VALUES (\'"
      stmt1 += opiekun.imie
      stmt1 += "\', \'"
      stmt1 += opiekun.nazwisko
      stmt1 += "\', \'"
      stmt1 += opiekun.adres
      stmt1 += "\', \'"
      stmt1 += opiekun.telefon
      stmt1 += "\', \'"
      stmt1 += opiekun.zaklad_pracy
      stmt1 += "\');"
      @plikInsert.puts stmt1
      stmt2 = "INSERT INTO UczniowieOpiekunowie (Opiekun_id, uczniowie_nr_legitymacji) VALUES ("
      stmt2 += "(SELECT id FROM Opiekunowie WHERE imie=\'"
      stmt2 += opiekun.imie
      stmt2 += "\' AND nazwisko=\'"
      stmt2 += opiekun.nazwisko
      stmt2 += "\' AND adres=\'"
      stmt2 += opiekun.adres
      stmt2 += "\' AND telefon=\'"
      stmt2 += opiekun.telefon
      stmt2 += "\' AND zaklad_pracy=\'"
      stmt2 += opiekun.zaklad_pracy
      stmt2 += "\')"
      stmt2 += ", "
      stmt2 += "(SELECT nr_legitymacji FROM Uczniowie WHERE imie=\'"
      stmt2 += uczen.imie
      stmt2 += "\' AND nazwisko=\'"
      stmt2 += uczen.nazwisko
      stmt2 += "\' AND data_urodzenia=\'"
      stmt2 += uczen.data_urodzenia
      stmt2 += "\' AND miejsce_urodzenia=\'"
      stmt2 += uczen.miejsce_urodzenia;
      stmt2 += "\')"
      stmt2 += ");"
      @plikInsert.puts stmt2
    }
  end
  
  def generujUzytkownikowSystemu(liczbaSekretarek)
    i=0
    @nauczyciele.each { |nauczyciel|
      user = User.new
      user.login = "n"+nauczyciel.imie+"."+nauczyciel.nazwisko+i.to_s
      i+=1
      user.haslo = rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s
      user.email = user.login+"@"+@eMail[rand(@eMail.length)]
      user.uprawnienia = "nauczyciel"
      user.uzytkownik = nauczyciel
      @uzytkownicy << user
      stmt = "INSERT INTO UzytkownicySystemu (login, haslo, email, uprawnienia, "
      stmt += "nauczyciele_id"
      stmt += ") VALUES (\'"
      stmt += user.login
      stmt += "\', \'"
      stmt += Digest::SHA1.hexdigest(user.haslo)
      stmt += "\', \'"
      stmt += user.email
      stmt += "\', \'"
      stmt += user.uprawnienia
      stmt += "\', "
      stmt += "(SELECT id FROM Nauczyciele WHERE imie=\'"
      stmt += nauczyciel.imie
      stmt += "\' AND nazwisko=\'"
      stmt += nauczyciel.nazwisko
      stmt += "\' AND adres=\'"
      stmt += nauczyciel.adres
      stmt += "\' AND telefon_kontaktowy=\'"
      stmt += nauczyciel.telefon
      stmt += "\')"
      stmt += ");"
      stmt += " -- haslo to "+user.haslo
      @plikInsert.puts stmt
    }
    
    i=0
    @uczniowie.each { |uczen|
      user = User.new
      user.login = "u"+uczen.imie+"."+uczen.nazwisko+i.to_s
      i+=1
      user.haslo = rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s
      user.email = user.login+"@"+@eMail[rand(@eMail.length)]
      user.uprawnienia = "uczen"
      user.uzytkownik = uczen
      @uzytkownicy << user
      stmt = "INSERT INTO UzytkownicySystemu (login, haslo, email, uprawnienia, "
      stmt += "uczniowie_nr_legitymacji"
      stmt += ") VALUES (\'"
      stmt += user.login
      stmt += "\', \'"
      stmt += Digest::SHA1.hexdigest(user.haslo)
      stmt += "\', \'"
      stmt += user.email
      stmt += "\', \'"
      stmt += user.uprawnienia
      stmt += "\', "
      stmt += "(SELECT nr_legitymacji FROM Uczniowie WHERE imie=\'"
      stmt += uczen.imie
      stmt += "\' AND nazwisko=\'"
      stmt += uczen.nazwisko
      stmt += "\' AND adres=\'"
      stmt += uczen.adres
      stmt += "\')"
      stmt += ");"
      stmt += " -- haslo to "+user.haslo
      @plikInsert.puts stmt
    }
    
    i=0
    @opiekunowie.each { |opiekun|
      user = User.new
      user.login = "o"+opiekun.imie+"."+opiekun.nazwisko+i.to_s
      i+=1
      user.haslo = rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s+rand(9).to_s
      user.email = user.login+"@"+@eMail[rand(@eMail.length)]
      user.uprawnienia = "opiekun"
      user.uzytkownik = opiekun
      @uzytkownicy << user
      stmt = "INSERT INTO UzytkownicySystemu (login, haslo, email, uprawnienia, "
      stmt += "opiekunowie_id"
      stmt += ") VALUES (\'"
      stmt += user.login
      stmt += "\', \'"
      stmt += Digest::SHA1.hexdigest(user.haslo)
      stmt += "\', \'"
      stmt += user.email
      stmt += "\', \'"
      stmt += user.uprawnienia
      stmt += "\', "
      stmt += "(SELECT id FROM Opiekunowie WHERE imie=\'"
      stmt += opiekun.imie
      stmt += "\' AND nazwisko=\'"
      stmt += opiekun.nazwisko
      stmt += "\' AND adres=\'"
      stmt += opiekun.adres
      stmt += "\' AND telefon=\'"
      stmt += opiekun.telefon
      stmt += "\' AND zaklad_pracy=\'"
      stmt += opiekun.zaklad_pracy
      stmt += "\')"
      stmt += ");"
      stmt += " -- haslo to "+user.haslo
      @plikInsert.puts stmt  
    }
    
    liczbaSekretarek.times { |i|
      login = "sekretarka"+i.to_s
      haslo = Digest::SHA1.hexdigest(login)
      email = login+"@szkola.edu.pl"
      stmt = "INSERT INTO UzytkownicySystemu (login, haslo, email, uprawnienia) VALUES (\'"
      stmt += login
      stmt += "\', \'"
      stmt += haslo
      stmt += "\', \'"
      stmt += email
      stmt += "\', \'sekretarz\');"
      @plikInsert.puts stmt
    }
    return ["DELETE FROM UzytkownicySystemu;"]
  end
  
  #def generujHarmonogramZajec(ile)
  #  ile.times { |i|
  #    
  #  }
  #  return ["DELETE FROM HarmonogramZajec;"]
  #end
  
  def generujOceny(ile)
    ile.times { |i|
      stmt = "INSERT INTO Oceny (wartosc, data, waga, uczniowie_nr_legitymacji, nauczane_przedmioty_id) VALUES("
      stmt += (rand(6)+1).to_s
      stmt += ", \'2009-"
      stmt += (rand(12)+1).to_s+"-"+(rand(27)+1).to_s
      stmt += "\', "
      stmt += (rand(90)+1).to_s
      stmt += ", "
      stmt += @uczniowie[rand(@uczniowie.length)].nr_legitymacji.to_s
      stmt += ", "
      
      nauczyciel = @nauczyciele[rand(@nauczyciele.length)]
      przedmiot = nauczyciel.nauczane_przedmioty[rand(nauczyciel.nauczane_przedmioty.length)]
      while (przedmiot == nil)
        nauczyciel = @nauczyciele[rand(@nauczyciele.length)]
        przedmiot = nauczyciel.nauczane_przedmioty[rand(nauczyciel.nauczane_przedmioty.length)]
      end
      stmt += "(SELECT id FROM NauczanePrzedmioty WHERE przedmioty_id="
      stmt += "(SELECT id FROM Przedmioty WHERE nazwa=\'"
      stmt += przedmiot
      stmt += "\')"
      stmt += " AND nauczyciele_id="
      stmt += "(SELECT id FROM Nauczyciele WHERE imie=\'"
      stmt += nauczyciel.imie
      stmt += "\' AND nazwisko=\'"
      stmt += nauczyciel.nazwisko
      stmt += "\' AND adres=\'"
      stmt += nauczyciel.adres
      stmt += "\' AND telefon_kontaktowy=\'"
      stmt += nauczyciel.telefon 
      stmt += "\'"
      stmt += ")"
      stmt += ")"
      stmt += ");"
      @plikInsert.puts stmt
    }
    return ["DELETE FROM Oceny;"]
  end
  
  def generujOcenyKoncowe(ile)
    ile.times { |i|
      stmt = "INSERT INTO OcenyKoncowe (wartosc, data, czy_zatwierdzone, nr_legitymacji, nauczane_przedmioty_id) VALUES ("
      stmt += (rand(6)+1).to_s
      stmt += ", \'"
      stmt += "2009-"+(rand(12)+1).to_s+"-"+(rand(27)+1).to_s
      stmt += "\', \'true\', "
      stmt += @uczniowie[rand(@uczniowie.length)].nr_legitymacji.to_s
      stmt += ", "
      nauczyciel = @nauczyciele[rand(@nauczyciele.length)]
      przedmiot = nauczyciel.nauczane_przedmioty[rand(nauczyciel.nauczane_przedmioty.length)]
      while (przedmiot == nil)
        nauczyciel = @nauczyciele[rand(@nauczyciele.length)]
        przedmiot = nauczyciel.nauczane_przedmioty[rand(nauczyciel.nauczane_przedmioty.length)]
      end
      stmt += "(SELECT id FROM NauczanePrzedmioty WHERE przedmioty_id="
      stmt += "(SELECT id FROM Przedmioty WHERE nazwa=\'"
      stmt += przedmiot
      stmt += "\')"
      stmt += " AND nauczyciele_id="
      stmt += "(SELECT id FROM Nauczyciele WHERE imie=\'"
      stmt += nauczyciel.imie
      stmt += "\' AND nazwisko=\'"
      stmt += nauczyciel.nazwisko
      stmt += "\' AND adres=\'"
      stmt += nauczyciel.adres
      stmt += "\' AND telefon_kontaktowy=\'"
      stmt += nauczyciel.telefon 
      stmt += "\'"
      stmt += ")"
      stmt += ")"
      stmt += ");"
     @plikInsert.puts stmt 
    }
    return ["DELETE FROM OcenyKoncowe;"]
  end
  
  def generujOcenyZZachowania
    @uczniowie.each { |uczen|
      stmt = "INSERT INTO Oceny_z_zachowania (wartosc, data, czy_zatwierdzone, Uczniowie_nr_legitymacji) VALUES (\'"
      ocena = case rand(6)
      when 0 then 'naganny'
      when 1 then 'nieodpowiednie'
      when 2 then 'poprawny'
      when 3 then 'dobry'
      when 4 then 'bardzodobry'
      when 5 then 'wzorowy'
      end
      stmt += ocena 
      stmt += "\', \'"
      data = '2009-'+(rand(9)+1).to_s+'-'+(rand(25)+1).to_s
      stmt += data
      stmt += "\', \'"
      stmt += rand(2)==1 ? 'true' : 'false'
      stmt += "\', "
      stmt += uczen.nr_legitymacji.to_s
      stmt += ");"
      @plikInsert.puts stmt
    }
    return ["DELETE FROM Oceny_z_zachowania;"]
  end
  
  def generujNieobecnosci(ile)
    ile.times { |i|
      uczen = @uczniowie[rand(@uczniowie.length)]
      stmt = "INSERT INTO Nieobecnosci (start, koniec, czy_usprawiedliwiona, uczniowie_nr_legitymacji) VALUES (\'"
      dzien = rand(25+1)
      data = '2009-'+(rand(12)+1).to_s+"-"
      stmt += data+dzien.to_s
      stmt += "\', \'"
      dzien += rand(3)+1
      stmt += data+dzien.to_s
      stmt += "\', \'"
      stmt += rand(2)==1 ? 'true' : 'false'
      stmt += "\', "
      stmt += uczen.nr_legitymacji.to_s
      stmt += ");"
      @plikInsert.puts stmt
    }
    return ["DELETE FROM Nieobecnosci;"]
  end
  
  #def generujWydarzenia(ile)
  # 
  #end
  
  #def generujUczestnikowWydarzenia(ile)
  #  
  #end 
  
  def generujWiadomosci(ile)
    ile.times { |i|
      odebrana = rand(2)==1 ? true : false
      stmt = ""
      if(odebrana) then
        stmt = "INSERT INTO Wiadomosci (tresc, data_wyslania, data_odbioru, temat, login_od, login_do) VALUES (\'"
      else 
        stmt = "INSERT INTO Wiadomosci (tresc, data_wyslania, temat, login_od, login_do) VALUES (\'"
      end
      stmt += "Wiadomosc probna "+rand(100).to_s
      stmt += "\', \'"
      dzien = (rand(25)+1)
      data = "2009-"+(rand(12)+1).to_s+"-"
      stmt += data+dzien.to_s
      stmt += "\', \'"
      if(odebrana) then
         dzien += rand(4)
         stmt += data+dzien.to_s
         stmt += "\', \'"        
      end
      stmt += "temat probny "+rand(100).to_s
      stmt += "\', \'"
      stmt += @uzytkownicy[rand(@uzytkownicy.length)].login
      stmt += "\', \'"
      stmt += @uzytkownicy[rand(@uzytkownicy.length)].login
      stmt += "\');"
      @plikInsert.puts stmt
    }
    return ["DELETE FROM Wiadomosci;"]
  end
end

puts "Zaczynam..."

plikInsert = File.new(nazwaPlikInsert, "w")
plikDelete = File.new(nazwaPlikDelete, "w")

generator = Generator.new(plikInsert, plikDelete)
deletes = []
deletes = generator.generujPrzedmioty | deletes
#deletes = generator.generujKategorie | deletes
deletes = generator.generujNauczycieli(liczbaNauczycieli) | deletes
deletes = generator.generujKlasy(liczbaKlas) | deletes
deletes = generator.generujUczniow(liczbaUczniow) | deletes
deletes = generator.generujUzytkownikowSystemu(liczbaSekretarek) | deletes
deletes = generator.generujOceny(liczbaOcen) | deletes
deletes = generator.generujOcenyKoncowe(liczbaOcenKoncowych) | deletes
deletes = generator.generujOcenyZZachowania | deletes
deletes = generator.generujNieobecnosci(liczbaNieobecnosci) | deletes
deletes = generator.generujWiadomosci(liczbaWiadomosci) | deletes

plikDelete.puts deletes

plikInsert.close
plikDelete.close

puts "Gotowe";
